<?php
// +----------------------------------------------------------------------
// | 卡券
// +----------------------------------------------------------------------
// | Copyright (c) 2015-2024 http://www.yicmf.com, All rights reserved.
// +----------------------------------------------------------------------
// | Author: 微尘 <yicmf@qq.com>
// +----------------------------------------------------------------------
namespace app\controller\api\v3;

use app\event\app\ThirdRecharge as ThirdRechargeEvent;
use app\model\app\Modular as ModularModel;
use app\model\app\ThirdRecharge as ThirdRechargeModel;
use app\model\app\ThirdRechargeOrder as ThirdRechargeOrderModel;
use app\model\pay\Pay as PayModel;

class Life extends Common
{

    public function create()
    {
        $event = new ThirdRechargeEvent();
        $data = $event->order($this->request->param(), $this->user);
        return $this->autoAjax($data);
    }

    /**
     * 生活缴费主页
     */
    public function home()
    {
        $data['modular'] = ModularModel::with('cover')->where('id', 14)->find();
        $data['channel'][] = ['name' => '三网慢充'];
        $data['channel'][] = ['name' => '全国电费'];
        $data['channel'][] = ['name' => '全国燃气'];
        $app = new ThirdRechargeEvent();
        $data['mobile'] = ThirdRechargeModel::where('status', 1)->where('is_sale', 1)->where('name_type', '三网慢充')->select();
        $data['mobile2'] = ThirdRechargeModel::where('status', 1)->where('is_sale', 1)->where('name_type', '三网快充')->select();
        $data['eles'] = ThirdRechargeModel::where('status', 1)->where('is_sale', 1)->where('name_type', '国家电网电费')->select();
        $data['ra1'] = ThirdRechargeModel::where('status', 1)->where('is_sale', 1)->where('name_type', '中燃燃气')->select();
        $data['ra2'] = ThirdRechargeModel::where('status', 1)->where('is_sale', 1)->where('name_type', '北京燃气')->select();
        $ele_city = $app->city();
        $city = [];
        foreach ($ele_city as $index => $item) {
            $temp['id'] = $item['id'];
            $temp['value'] = $item['id'];
            $temp['text'] = $item['city_name'];
            $temp['children'] = [];
            foreach ($item['city'] as $item2) {
                $temp['children'][] = [
                    'id' => $item2['id'],
                    'value' => $item2['id'],
                    'text' => $item2['city_name'],
                ];
            }
            $city[] = $temp;
        }

        $data['ele_city'] = $city;
        // "id": 1,
        //            "value": 1,
        //            "text": "北京",
        $data['ele_method'][] = '国家电网电费';
        $data['qi_method'][] = '中燃燃气';
        $data['qi_method'][] = '北京燃气';
        $data['notice_text'] = '请认真核对充值号码，充值成功后不支持退款';
        // 是否接收推送
        $data['allow_push'] = 0;

        // 倒计时
        $data['time_has'] = 10;
        $data['tab0_select_id'] = 22;
        $data['tab1_select_id'] = 31;
        $data['tab2_select_id'] = '1';
        $data['recharge_mobile'] = '';
        $data['qi_no'] = '';
        if ($this->user) {
            // 搜索上次情况
            $last = ThirdRechargeOrderModel::where('user_id',$this->user['id'])->order('id DESC')->value('allow_push');
            if ($last)
            {
                $data['allow_push'] = 1;
            }
            $ele = ThirdRechargeOrderModel::where('user_id', $this->user['id'])
                ->where('channel', 'elec')
                ->whereNotNull('city')
                ->where('status', '>', 0)
                ->order('id desc')
                ->find();
            if ($ele) {
                $data['elec_no'] = $ele['template'];
                $data['country_name'] = $ele['area'];
                $data['city_name'] = $ele['city'];
            } else {
                $data['elec_no'] = '';
                $data['country_name'] = '';
                $data['city_name'] = '';
            }
            $data['recharge_mobile'] = ThirdRechargeOrderModel::where('user_id', $this->user['id'])
                ->where('channel', 'mobile')
                ->where('status', '>', 0)
                ->order('id desc')
                ->value('template');
            if ($data['recharge_mobile']) {
                $data['time_has'] = 5;
            }
            $data['qi_no'] = ThirdRechargeOrderModel::where('user_id', $this->user['id'])
                ->where('channel', 'qi')
                ->where('status', '>', 0)
                ->order('id desc')
                ->value('template');
        } else {

            $data['elec_no'] = '';
            $data['country_name'] = '';
            $data['city_name'] = '';
        }

        $data['tips0'] = '<p>
    <span style="text-wrap-mode: nowrap;">1.请<strong><span style="text-wrap-mode: nowrap; color: rgb(255, 109, 10);">勿在任何渠道进行二次充值</span></strong>，否则丢失不赔；务必等平台显示【充值成功】或者【充值失败】后，才可以到其他地方充值。</span>
</p>
<p>
    <span style="text-wrap-mode: nowrap; ">2.特殊渠道小概率出现充值失败，欠费<span style="text-wrap-mode: nowrap; color:  rgb(255, 109, 10);"><strong>急单等介意勿拍</strong></span>。</span>
</p>
<p>
    <span style="text-wrap-mode: nowrap; ">3. 慢充存在充值失败或者超时仍处于【充值中】状态的可能性，并且部分订单到账会有延迟，可能会在显示成功后的<span style="text-wrap-mode: nowrap; color:  rgb(255, 109, 10);"><strong> 48小时</strong></span>内到账，若显示成功 24 小时后还未到账，请联系客服进行售后处理。如遇充值失败，联系客服确认问题后可再次下单。</span>
</p>
<p>
    <span style="text-wrap-mode: nowrap;">4. <span style="text-wrap-mode: nowrap; color:  rgb(255, 109, 10);"><strong>充值可能分批到账</strong></span>，例如分 30、50、100 这样到账，如果平台显示【充值成功】，但未全部到账，可发起售后，说明清楚到账金额即可。</span>
</p>
<p>
    <span style="text-wrap-mode: nowrap;">5. 产品不含发票，如需开票，请自行前往对应的 app 联系尝试开具。</span>
</p>
<p>
    <span style="text-wrap-mode: nowrap;">6. 下单后若需要<span style="text-wrap-mode: nowrap; color:  rgb(255, 109, 10);"><strong>取消充值</strong></span>，可联系客服申请撤单，客服会尝试处理，但<span style="text-wrap-mode: nowrap; color:  rgb(255, 109, 10);"><strong>无法保证</strong></span>一定能撤单成功，撤单成功后退款金额将原路返回。</span>
</p>
<p>
    <span style="text-wrap-mode: nowrap;">7. 如果话费处于【充值中】状态时，有人打电话说话费充错了让您打钱给他之类的；或者冒充官方打电话让您自己充值，说平台会退您钱之类的，直接挂断电话即可。<strong><span style="text-wrap-mode: nowrap; color:  rgb(255, 109, 10);">在充值过程中打电话给您的都是骗子，直接挂电话，有问题联系在线客服</span></strong>。</span>
</p>
<p>
    <span style="text-wrap-mode: nowrap;">8. 话费可充值地区会随时进行维护和变动，若部分地区无法充值成功，系统会进行退款处理。</span>
</p>
<p>
    <span style="text-wrap-mode: nowrap;">9.<span style="text-wrap-mode: nowrap; color:  rgb(255, 109, 10);"><strong>虚拟运营商手机号</strong></span>（包括但不限于 149、162、165、167、170、171 等开头的号码），如为空号、停机、欠费、集团号、副卡、合约号等情况均不支持充值，若因充值此类号码造成损失，需自行承担。</span>
</p>
<p>
    <span style="text-wrap-mode: nowrap;">10.<span style="text-wrap-mode: nowrap; color:  rgb(255, 109, 10);"><strong>新疆移动 </strong></span>暂不支持，电信目前支持广东、江苏、湖北、四川、河北、江西、河南、福建、甘肃、云南、吉林、辽宁、山东、贵州省份</span>
</p>
<p>
    <br/>
</p>';
        $data['tips1'] = '<p>
    <span style="text-wrap-mode: nowrap;">1.请勿在任何渠道进行二次充值，否则丢失不赔；务必等平台显示【充值成功】或者【充值失败】后，才可以到其他地方充值。</span>
</p>
<p>
    <span style="text-wrap-mode: nowrap;">2.特殊渠道小概率出现充值失败，欠费急单等介意勿拍。</span>
</p>
<p>
    <span style="text-wrap-mode: nowrap;">3. 慢充存在充值失败或者超时仍处于【充值中】状态的可能性，并且部分订单到账会有延迟，可能会在显示成功后的 72小时内到账，若显示成功 24 小时后还未到账，请联系客服进行售后处理。如遇充值失败，联系客服确认问题后可再次下单。</span>
</p>
<p>
    <span style="text-wrap-mode: nowrap;">4. <span style="text-wrap-mode: nowrap; color:  rgb(255, 109, 10);"><strong>大额2000,5000充值</strong></span>会分1000以下分次提交，到账时间会顺延。</span>
</p>
<p>
    <span style="text-wrap-mode: nowrap;">5. 产品不含发票，如需开票，请自行前往对应的 app 联系尝试开具。</span>
</p>
<p>
    <span style="text-wrap-mode: nowrap;">6. 下单后若需要<span style="text-wrap-mode: nowrap; color:  rgb(255, 109, 10);"><strong>取消充值</strong></span>，可联系客服申请撤单，客服会尝试处理，但<span style="text-wrap-mode: nowrap; color:  rgb(255, 109, 10);"><strong>无法保证</strong></span>一定能撤单成功，撤单成功后退款金额将原路返回。</span>
</p>
<p>
    <br/>
</p>';
        $data['tips2'] = '<p>
    <span style="text-wrap-mode: nowrap;">1.请勿在任何渠道进行二次充值，否则丢失不赔；务必等平台显示【充值成功】或者【充值失败】后，才可以到其他地方充值。</span>
</p>
<p>
    <span style="text-wrap-mode: nowrap;">2.特殊渠道小概率出现充值失败，欠费急单等介意勿拍。</span>
</p>
<p>
    <span style="text-wrap-mode: nowrap;">3. 慢充存在充值失败或者超时仍处于【充值中】状态的可能性，并且部分订单到账会有延迟，可能会在显示成功后的 72小时内到账，若显示成功 24 小时后还未到账，请联系客服进行售后处理。如遇充值失败，联系客服确认问题后可再次下单。</span>
</p>
<p>
    <span style="text-wrap-mode: nowrap;">4. 充值可能分批到账，例如分 30、50、100 这样到账，如果平台显示【充值成功】，但未全部到账，可发起售后，说明清楚到账金额即可。</span>
</p>
<p>
    <span style="text-wrap-mode: nowrap;">5. 产品不含发票，如需开票，请自行前往对应的 app 联系尝试开具。</span>
</p>
<p>
    <span style="text-wrap-mode: nowrap;">6. 下单后若需要取消充值，可发起售后，客服会尝试处理，但无法保证一定能取消成功。</span>
</p>
<p>
    <br/>
</p>';


        $data['kf_link'] = 'https://work.weixin.qq.com/kfid/kfc6727b41d8fad8b96';
        $data['know_tips'][] = '<p>
								注意:
							</p>
							<p>
								①在平台显示【充值成功】或者【充值失败】前，<span
									style="color: rgb(255, 0, 0);"><strong>切勿在任何渠道进行二次充值</strong></span><span
									style="color: rgb(255, 0, 0);"></span>，否则丢失不赔。
							</p>
							<p>
								②特殊渠道小概率出现充值失败，欠费急单等介意勿拍。
							</p>
							<p>
								③虚拟运营商手机号、空号、停机、欠费、集团号、副卡、合约号等均不支持充值。
							</p>
							<p>
								<br />
							</p>';
        $data['know_tips'][] = '<p>
								注意:
							</p>
							<p>
								①在平台显示【充值成功】或者【充值失败】前，<span
									style="color: rgb(255, 0, 0);"><strong>切勿在任何渠道进行二次充值</strong></span><span
									style="color: rgb(255, 0, 0);"></span>，否则丢失不赔。
							</p>
							<p>
								②特殊渠道小概率出现充值失败，欠费急单等介意勿拍。
							</p>
							<p>
								③国家电网电费 —— 0 -- 72小时到账 自动退 / 支持住宅，商铺，企业
							</p>
							<p>
								<br />
							</p>';
        $data['know_tips'][] = '<p>
								注意:
							</p>
							<p>
								①在平台显示【充值成功】或者【充值失败】前，<span
									style="color: rgb(255, 0, 0);"><strong>切勿在任何渠道进行二次充值</strong></span><span
									style="color: rgb(255, 0, 0);"></span>，否则丢失不赔。
							</p>
							<p>
								②特殊渠道小概率出现充值失败，欠费急单等介意勿拍。
							</p>
							<p>
								③只能充值物联表。
							</p>
							<p>
								<br />
							</p>';
        return $this->successAjax($data);
    }

    public function alipay()
    {
        $pay = PayModel::where('id', $this->request->param('pay_id'))->where('type', 'life')->where('status', 0)->find();
        if ($pay) {
            $order = ThirdRechargeOrderModel::where('id', $pay['relation_id'])->where('status', 0)->find();
            if ($order) {
                $data['order'] = [$order];
                $data['pay'] = $pay;
                $data['order_info'] = alipay_app_pre_pay($pay['pay_sn'], $pay['total_amount'], $pay['title'], $pay['type']);
                return $this->successAjax($data);
            } else {
                return $this->errorAjax('订单超时');
            }
        } else {
            return $this->errorAjax('订单超时');
        }

    }
}
